const express = require('express');
const bodyParser = require('body-parser');
const session = require('express-session');
var router = require('./router');
const app = express();

// 开放静态资源
// 当以/public/开头的时候，去./public/目录中找对应资源
// 访问：http://127.0.0.1:3000/public/userImg/logo3.png
app.use('/public/',express.static('./public/'));

// 解析表单请求体
// parse application/x-www-form-urlencoded,配置中间件
app.use(bodyParser.urlencoded({ extended: false }));
// parse application/json
app.use(bodyParser.json());

//该插件会为req请求对象添加一个成员:req.session默认是一个对象
//这是最简单的配置方式
//Session是基于Cookie实现的
app.use(session({
  //配置加密字符串，他会在原有的基础上和字符串拼接起来去加密
  //目的是为了增加安全性，防止客户端恶意伪造
  secret: 'itcast',
  resave: false,
  saveUninitialized: true,//无论是否适用Session，都默认直接分配一把钥匙
  //设置session过期时间，1个小时，如果1个小时没有发送请求，则过期
  cookie:{
    maxAge:3600000
  }
}));

app.use(router);


//统一错误处理的中间件
app.use((err,req,res,next)=>{
  res.status(500).json({
    error:err.message
  });
  console.log(err)
});




app.get('/',(req,res,next)=>{
  res.status(200).send('api server is running...')
})

app.listen(3000,()=>{
  console.log('App is running at port 3000.')
  console.log('Please visit http://127.0.0.1:3000/')
})